// 获取今天的日期
var today = new Date();
const XLSX = require('xlsx');
const generateLog = require('./logger'); //日志模块
const path = require('path');

// 输出excel表格模块
const {
  createExcelFile,
  worksheetExists,
  appendWorksheetToFile,
} = require('./outFile');

// const httpClient = require("./axios");
const fs = require('fs');
// 日志模块初始化
const logFilePath = path.join(__dirname, './log/appRun.log'); // 日志文件路径

module.exports.asyncFunction = function (data, options, callback) {
  // 模拟异步操作
  setTimeout(() => {
    // const worksheetName = options.fullDate;
    const worksheetName = options.fullDate;
    const worksheetName12 = options.dayHour;
    const worksheetData = [
      ['邮箱', '网站', '相关属性', '判定', '备注', '时间'],
    ];

    // 本地处理结果表文件存在否
    if (fs.existsSync(options.outfilePath)) {
      console.log('表1已经存在', worksheetName);
      const workbook = XLSX.readFile(options.outfilePath); // 替换为你的工作簿路径
      // 检查是否存在名为 'xxx' 的工作表
      const sheetExists = worksheetExists(workbook, worksheetName);
      if (sheetExists) {
        // console.log(`${worksheetName} 是否存在: ${sheetExists}`);
        console.log('工作表1表名存在,数据直接追加到工作表:', worksheetName);
      } else {
        // console.log("工作表1在,表名不存在,新建立工作表:", worksheetName)
        // 调用模块函数，追加工作表
        appendWorksheetToFile(
          options.outfilePath, // 现有工作簿的路径
          options.outfilePath, // 更新后工作簿的路径
          worksheetName12, // 新工作表的名称  //新建工作表名按小时建立
          worksheetData // 新工作表的数据
        );
        today = new Date();
        milliseconds = today.getMilliseconds();
        generateLog(
          logFilePath,
          '工作表1存在,表名不存在,新建立工作表' + `--${options.nowTime}`
        );
      }
    } else {
      // console.log("表格1不存在");
      // 调用函数创建Excel文件，创建新表，按日期天建立
      console.log(worksheetData, options.outfilePath, worksheetName);
      createExcelFile(worksheetData, options.outfilePath, worksheetName);
      today = new Date();
      milliseconds = today.getMilliseconds();
      generateLog(
        logFilePath,
        '表1文件不存在,新建立表文件' + `--${options.nowTime}`
      );
      // 主函数
    }

    const worksheetName2 = options.fullDate;
    const worksheetName22 = options.dayHour;
    const worksheetData2 = [['邮箱', '网站', '关键词', '相关属性', '判断结论']];
    // 本地处理异常结果表文件存在否
    if (fs.existsSync(options.outfilePath2)) {
      console.log('表2已经存在', options.outfilePath2);
      const workbook = XLSX.readFile(options.outfilePath2); // 替换为你的工作簿路径
      // 检查是否存在名为 'xxx' 的工作表
      const sheetExists = worksheetExists(workbook, worksheetName2);
      if (sheetExists) {
        // console.log(`${worksheetName} 是否存在: ${sheetExists}`);
        console.log('工作表2名存在,数据直接追加到工作表:', worksheetName2);
      } else {
        // 调用模块函数，追加工作表
        appendWorksheetToFile(
          options.outfilePath2, // 现有工作簿的路径
          options.outfilePath2, // 更新后工作簿的路径
          worksheetName22, // 新工作表的名称
          worksheetData2 // 新工作表的数据
        );
        today = new Date();
        milliseconds = today.getMilliseconds();
        generateLog(
          logFilePath,
          '工作表2在,表名' +
            `${worksheetName2}` +
            '不存在,新建立工作表' +
            `--${options.nowTime}`
        );
      }
    } else {
      // 调用函数创建 Excel 文件  创建新表
      createExcelFile(worksheetData2, options.outfilePath2, worksheetName2);
      today = new Date();
      milliseconds = today.getMilliseconds();
      generateLog(
        logFilePath,
        '表2文件不存在,新建立表文件' + `--${options.nowTime}`
      );
    }
    callback(null, data + ' 异步回调执行完毕返回');
  }, 1);
};
